Omniverse Hoops Converter [omni.kit.converter.hoops_core]

This extension provides interfaces to convert 3D formats to USD and also supports to convert USD to those assets.

Overview

omni.kit.converter.hoops_core uses the HOOPS Exchange SDK to convert a variety of CAD data formats to USD.

When this extension loads, it will register itself with the CAD Converter service (omni.services.convert.cad) if it is available.

Note

As of version 201.1.0, omni.kit.converter.cad_core has been deprecated. Its functionality has been divided between two extensions: omni.kit.converter.hoops (UI extension) and omni.kit.converter.hoops_core (headless extension).

Recent Stage Authoring Changes:

Since version 201.1.0 of omni.kit.converter.cad, the stage authoring for HOOPS extensions has been updated to comply with Scenegraph Instancing guidelines. Each HOOPS model element now generates a prototype. During conversion, instances are created with internal references to their corresponding prototype paths, and the Instanceable flag is set to true. For more information, refer to the Scenegraph Instancing documentation.

Scenegraph Instancing Changes

CAD CONVERTER CONFIG FILE INPUTS:

Conversion options are configured by supplying a JSON file. Below are the available configuration options.

JSON Converter Settings:

Format: “setting name” : default value

Converter Option: Instancing

Description: If true the USD model uses instancing by creating USD References. If false, then there is no instancing at all.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bInstancing" : true

Converter Option: Convert Hidden

Description: If true, export hidden elements but set their converted USD prims visibility to “invisible”. Otherwise, skip hidden elements.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bConvertHidden" : true

Converter Option: Global Xforms

Description: When bInstancing is set to false, this flag controls whether globalXforms are composited. If false local transforms are applied.

Default Value: false Value Ranges: true, false Data Format: bool

"bGlobalXforms" : false

Converter Option: Tessellation Level of Detail (LOD)

Description: Tessellation levels of detail presets provide values to define ChordHeightRatio and AngleToleranceDeg; 0 is the lowest level (ExtraLow) while 4 is the highest level (ExtraHigh)

Default Value: 2 Value Ranges: [0, 4]

  • 0, iTessLOD0 = ExtraLow, ChordHeightRatio=50, AngleToleranceDeg=40,

  • 1, iTessLOD1 = Low, ChordHeightRatio=600, AngleToleranceDeg=40,

  • 2, iTessLOD2 = Medium, ChordHeightRatio=2000, AngleToleranceDeg=40,

  • 3, iTessLOD3 = High, ChordHeightRatio=5000, AngleToleranceDeg=30,

  • 4, iTessLOD4 = ExtraHigh, ChordHeightRatio=10000, AngleToleranceDeg=20. Data Format: integer

"iTessLOD" : 2

Converter Option: Accurate Surface Curvatures

Description: If true, respect surface curvature to control triangles elongation directions.

Default Value: true Value Ranges: true, false Data Format: bool

"bAccurateSurfaceCurvatures" : true

Converter Option: Generate UVs

Description: If true, calls Scene Optimizer Service Kit extension to generate UVs if missing in source data.

NOTE: See Scene Optimizer Service documentation for details: https://docs.omniverse.nvidia.com/kit/docs/omni.services.scene.optimizer/latest/overview.html

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bOptimize" : true

Converter Option: Dedup Mesh Vertices

Description: If true, weld mesh elements in appropriate groups.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bDedup" : true

Converter Option: Use Materials

Description: If true converter creates OmniPBR materials with the color set as an attribute. If false converter will convert colors to USD displayColor primvars.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bUseMaterials" : true

Converter Option: Use Normals

Description: If true then we pass normals to USD. if false, then we do not.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bUseNormals" : true

Converter Option: Report Progress

Description: If true then we report import/export progress.

Default Value: true Value Ranges: true, false Data Format: bool

Config File Example:

"bReportProgress" : true

Converter Option: Use Current Stage

Description: If true use currently opened USD.

Default Value: true Value Ranges: true, false Data Format: bool

"bUseCurrentStage" : false

Converter Option: Convert Curves

Description: If true, convert curve elements into USD Basis Curves; else, ignore these elements.

Default Value: false Value Ranges: true, false Data Format: bool

"bConvertCurves" : false,

Converter Option: Convert Metadata

Description: If true then metadata, including PMI, are imported as USD Attributes; else, metadata are ignored.

Default Value: false Value Ranges: true, false Data Format: bool

"bConvertMetadata" : false,

Full sample_config.json:

{
  "bInstancing" : true,
  "bGlobalXforms" : false,
  "bConvertHidden" : true,
  "bOptimize" : true,
  "bDedup" : true,
  "iTessLOD" : 2,
  "bAccurateSurfaceCurvatures" : true,
  "bUseNormals" : true,
  "bUseMaterials" : true,
  "bReportProgress" : true,
  "bUseCurrentStage" : false,
  "bConvertCurves" : false,
  "bConvertMetadata" : false
}

Licensing Terms of Use and Third-Party Notices

The omni.kit.converter.hoops_core and related CAD converter Extensions are Omniverse Core Extensions. Do not redistribute or sublicense without express permission or agreement. Please read the Omniverse License Agreements and the Third_Party_Notices.md for detailed license information.